package com.edu.mapper;

import com.edu.bean.Book;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;

public interface BookMapper {

    //通过id找书
    Book selectBookById(int bookId);

    //通过书名 模糊查询来找书
    List<Book> selectBookByName(String bookName);

    //查询1号书的 指定的某个列的值
    String selectSomeThing(String columnName);

    //参数 是一个简单类型时（字符串 数字 字符类型...）
    // 通过类型来找书
    List<Book> selectBookByType(String bookType);

    //参数 是多个简单类型
    //通过书名 和 作者来找书
    Book selectBookByWriterAndName(@Param("bookWriter") String abc,@Param("bookName") String edf);

    //参数是一个 对象
    //添加书
    int insertBook(@Param("b") Book book);

    //参数是一个对象+ 简单类型的组合
    // 通过 作者 和书的类型 分页查找书
    List<Book> selectBook(@Param("book") Book book,@Param("offset") int offset,@Param("length") int length);

    //参数是多个对象
    int insertBook2(Book book1,Book book2);

    //参数是一个数组
    // 要求 查询 id 在指定的 几个范围之间的的书
    List<Book> selectBook2(@Param("ids") int[] bookIds);

    //参数是一个集合(List)
    int insertBooks(@Param("bookList") List<Book> bookList);

    //参数是一个Map集合
    //用 作者和 类型 来查询书籍信息
    List<Book> selectBooks3(@Param("m") Map<String,String> map);
}
